/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package co.edu.eam.persitencia.dao.Interfaz;

import co.edu.eam.persitencia.entidades.Acudiente;
import co.edu.eam.persitencia.entidades.EPS;
import co.edu.eam.persitencia.entidades.Paciente;
import co.edu.eam.persitencia.entidades.Persona;
import co.edu.eam.persitencia.entidades.Telefono;
import java.util.List;



/**
 *
 * @author Erika
 */
public interface IDAOPaciente {
    
    
    //////////////////////////crear//////////////////////////////
    
    /**
     * Interfaz para crear Un Paciente
     * @param paciente, objeto paciente el cual se va a crear
     * @throws Exception 
     */
    public void crearPaciente(Paciente paciente)throws Exception;
    
    /**
     * Interfaz para crear un Acudiente
     * @param acudiente, objeto Acudiente el cual se va a crear
     * @throws Exception 
     */
    public void crearAcudiente(Acudiente acudiente)throws Exception;
    
    /**
     * Interfaz para crear un telefono
     * @param telefono
     * @throws Exception 
     */
   public void crearTelefono(Telefono telefono)throws Exception;
   
   
   

   
   
   



/////////////////////////actualizar//////////////////////////////

   /**
    * Interfaz para editar un paciente
    * @param paciente
    * @throws Exception 
    */
 public void editarPaciente(Paciente paciente)throws Exception;
 
 /**
  * Interfaz para editar un Acudiente
  * @param acudiente
  * @throws Exception 
  */
 public void editarAcudiente(Acudiente acudiente)throws Exception;

 
 
 
 
 //////////////////////borrar//////////////////////////////////
 /**
  * Interfaz para borrar un Paciente
  * @param paciente
  * @throws Exception 
  */
 public void eliminarPaciente(Paciente paciente)throws Exception;
 
 /**
  * Interfaz para borrar un Acudiente
  * @param acudiente
  * @throws Exception 
  */
 public void eliminarAcudiente(Acudiente acudiente)throws Exception;
 
 
 /**
  * Interfaz para borrar un Telefono
  * @param telefono
  * @throws Exception 
  */
 public void eliminarTelefono(Telefono telefono)throws Exception;
 
 
 
 
 ////////////////////////buscar/////////////////////////////////
 /**
  * Interfaz para buscar un paciente por su documento de idenfificacion
  * @param documento
  * @throws Exception 
  */
  public Paciente buscarPaciente(String documento)throws Exception;
  
  
  /**
   * Interfaz para buscar un Acudiente por el documento de identificacion
   * @param documento
   * @throws Exception 
   */
   public Acudiente buscarAcudiente(String documento)throws Exception;
   
   
   
    /**
   * Interfaz para buscar un telefono
   * @param nombre
   * @throws Exception 
   */
   public Telefono buscarTelefono(String nombre)throws Exception;
   
  
   
   
   //////////////////listar////////////////////////////////
   
   /**
    * Lista todos los pacientes de la clinica
    * @return
    * @throws Exception 
    */
    public List <Paciente> listarTodosLosPacientes()throws Exception;
    
    
   /**
    * Lista los acudientes de un paciente determinado
    * @return
    * @throws Exception 
    */
    public List <Acudiente> listarAcudientePorPaciente(Paciente paciente)throws Exception;
    
    /**
     * Metodo que agrega un acudiente a un paciente determinado
     * @param acudiente
     * @param p
     * @throws Exception 
     */
    public void agregarAcudientePaciente (Acudiente acudiente, Paciente p) throws  Exception;
    
    
    /**
     * Metodo que elimina un acudiente de un paciente determinado
     * @param a
     * @param p
     * @throws Exception 
     */
     public void quitarAcudientePaciente (Acudiente a, Paciente p) throws  Exception;
    
    /**
     * Metodo que se encarga de editar un acudiente de un paciente especifico
     * @param as
     * @param c
     * @throws Exception 
     */
     public void editarAcudienteDePaciente(Acudiente as, Paciente c) throws Exception;
    
    
    
    
    
   
   
   
}

